// export FirstAttack , WezwanieRadaru ; starting begin DontEnter = true ;
   0: LD_ADDR_EXP 8
   4: PUSH
   5: LD_INT 1
   7: ST_TO_ADDR
// FirstAttack = false ;
   8: LD_ADDR_EXP 1
  12: PUSH
  13: LD_INT 0
  15: ST_TO_ADDR
// LostCheck = false ;
  16: LD_ADDR_EXP 12
  20: PUSH
  21: LD_INT 0
  23: ST_TO_ADDR
// WezwanieRadaru = 0 ;
  24: LD_ADDR_EXP 2
  28: PUSH
  29: LD_INT 0
  31: ST_TO_ADDR
// Center = 1 ;
  32: LD_ADDR_EXP 11
  36: PUSH
  37: LD_INT 1
  39: ST_TO_ADDR
// Ataki = 0 ;
  40: LD_ADDR_EXP 9
  44: PUSH
  45: LD_INT 0
  47: ST_TO_ADDR
// InGameOn ;
  48: CALL_OW 8
// end ;
  52: END
// export Nefarem ; every 0 0$0.5 do
  53: GO 55
  55: DISABLE
// begin uc_side = 4 ;
  56: LD_ADDR_OWVAR 20
  60: PUSH
  61: LD_INT 4
  63: ST_TO_ADDR
// uc_nation = 1 ;
  64: LD_ADDR_OWVAR 21
  68: PUSH
  69: LD_INT 1
  71: ST_TO_ADDR
// Nefarem := CreateCharacter ( Nefarem ) ;
  72: LD_ADDR_EXP 3
  76: PUSH
  77: LD_STRING Nefarem
  79: PPUSH
  80: CALL_OW 34
  84: ST_TO_ADDR
// SetClass ( Nefarem , class_soldier ) ;
  85: LD_EXP 3
  89: PPUSH
  90: LD_INT 1
  92: PPUSH
  93: CALL_OW 336
// PlaceUnitXY ( Nefarem , 92 , 91 , false ) ;
  97: LD_EXP 3
 101: PPUSH
 102: LD_INT 92
 104: PPUSH
 105: LD_INT 91
 107: PPUSH
 108: LD_INT 0
 110: PPUSH
 111: CALL_OW 48
// ComMoveXY ( Nefarem , 86 , 82 ) ;
 115: LD_EXP 3
 119: PPUSH
 120: LD_INT 86
 122: PPUSH
 123: LD_INT 82
 125: PPUSH
 126: CALL_OW 111
// wait ( 0 0$0.8 ) ;
 130: LD_INT 28
 132: PPUSH
 133: CALL_OW 67
// ADdComMoveXY ( Nefarem , 87 , 77 ) ;
 137: LD_EXP 3
 141: PPUSH
 142: LD_INT 87
 144: PPUSH
 145: LD_INT 77
 147: PPUSH
 148: CALL_OW 171
// wait ( 0 0$0.8 ) ;
 152: LD_INT 28
 154: PPUSH
 155: CALL_OW 67
// AddComMoveXY ( Nefarem , 81 , 66 ) ;
 159: LD_EXP 3
 163: PPUSH
 164: LD_INT 81
 166: PPUSH
 167: LD_INT 66
 169: PPUSH
 170: CALL_OW 171
// wait ( 0 0$0.8 ) ;
 174: LD_INT 28
 176: PPUSH
 177: CALL_OW 67
// AddComMoveXY ( Nefarem , 67 , 43 ) ;
 181: LD_EXP 3
 185: PPUSH
 186: LD_INT 67
 188: PPUSH
 189: LD_INT 43
 191: PPUSH
 192: CALL_OW 171
// end ;
 196: END
// every 0 0$0.5 trigger FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_inarea , ExplosionStart ] ] ) >= 1 do
 197: LD_INT 22
 199: PUSH
 200: LD_INT 1
 202: PUSH
 203: EMPTY
 204: LIST
 205: LIST
 206: PUSH
 207: LD_INT 21
 209: PUSH
 210: LD_INT 2
 212: PUSH
 213: EMPTY
 214: LIST
 215: LIST
 216: PUSH
 217: LD_INT 33
 219: PUSH
 220: LD_INT 3
 222: PUSH
 223: EMPTY
 224: LIST
 225: LIST
 226: PUSH
 227: LD_INT 95
 229: PUSH
 230: LD_INT 4
 232: PUSH
 233: EMPTY
 234: LIST
 235: LIST
 236: PUSH
 237: EMPTY
 238: LIST
 239: LIST
 240: LIST
 241: LIST
 242: PPUSH
 243: CALL_OW 69
 247: PUSH
 248: LD_INT 1
 250: GREATEREQUAL
 251: IFFALSE 387
 253: GO 255
 255: DISABLE
// begin Center = 0 ;
 256: LD_ADDR_EXP 11
 260: PUSH
 261: LD_INT 0
 263: ST_TO_ADDR
// CenterOnXY ( 69 , 39 ) ;
 264: LD_INT 69
 266: PPUSH
 267: LD_INT 39
 269: PPUSH
 270: CALL_OW 84
// MineExplosion ( 66 , 34 , 1000 ) ;
 274: LD_INT 66
 276: PPUSH
 277: LD_INT 34
 279: PPUSH
 280: LD_INT 1000
 282: PPUSH
 283: CALL_OW 453
// ComHold ( FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) ) ;
 287: LD_INT 22
 289: PUSH
 290: LD_INT 1
 292: PUSH
 293: EMPTY
 294: LIST
 295: LIST
 296: PUSH
 297: LD_INT 21
 299: PUSH
 300: LD_INT 2
 302: PUSH
 303: EMPTY
 304: LIST
 305: LIST
 306: PUSH
 307: LD_INT 33
 309: PUSH
 310: LD_INT 3
 312: PUSH
 313: EMPTY
 314: LIST
 315: LIST
 316: PUSH
 317: EMPTY
 318: LIST
 319: LIST
 320: LIST
 321: PPUSH
 322: CALL_OW 69
 326: PPUSH
 327: CALL_OW 140
// wait ( 0 0$0.5 ) ;
 331: LD_INT 18
 333: PPUSH
 334: CALL_OW 67
// MineExplosion ( 66 , 34 , 1000 ) ;
 338: LD_INT 66
 340: PPUSH
 341: LD_INT 34
 343: PPUSH
 344: LD_INT 1000
 346: PPUSH
 347: CALL_OW 453
// Say ( Nefarem , B1n ) ;
 351: LD_EXP 3
 355: PPUSH
 356: LD_STRING B1n
 358: PPUSH
 359: CALL_OW 88
// InGameOff ;
 363: CALL_OW 9
// LostCheck = true ;
 367: LD_ADDR_EXP 12
 371: PUSH
 372: LD_INT 1
 374: ST_TO_ADDR
// FirstAttack = true ;
 375: LD_ADDR_EXP 1
 379: PUSH
 380: LD_INT 1
 382: ST_TO_ADDR
// Atakowanie1 ;
 383: CALL 2753 0 0
// end ;
 387: END
// every 0 0$01 trigger FilterAllUnits ( [ f_side , 2 ] ) = 0 and FirstAttack = true do var human ;
 388: LD_INT 22
 390: PUSH
 391: LD_INT 2
 393: PUSH
 394: EMPTY
 395: LIST
 396: LIST
 397: PPUSH
 398: CALL_OW 69
 402: PUSH
 403: LD_INT 0
 405: EQUAL
 406: PUSH
 407: LD_EXP 1
 411: PUSH
 412: LD_INT 1
 414: EQUAL
 415: AND
 416: IFFALSE 545
 418: GO 420
 420: DISABLE
 421: LD_INT 0
 423: PPUSH
// begin human = FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] ] ) ;
 424: LD_ADDR_VAR 0 1
 428: PUSH
 429: LD_INT 22
 431: PUSH
 432: LD_INT 4
 434: PUSH
 435: EMPTY
 436: LIST
 437: LIST
 438: PUSH
 439: LD_INT 21
 441: PUSH
 442: LD_INT 1
 444: PUSH
 445: EMPTY
 446: LIST
 447: LIST
 448: PUSH
 449: EMPTY
 450: LIST
 451: LIST
 452: PPUSH
 453: CALL_OW 69
 457: ST_TO_ADDR
// InGameOn ;
 458: CALL_OW 8
// Say ( Nefarem , B2n ) ;
 462: LD_EXP 3
 466: PPUSH
 467: LD_STRING B2n
 469: PPUSH
 470: CALL_OW 88
// Say ( human [ 2 ] , B3z ) ;
 474: LD_VAR 0 1
 478: PUSH
 479: LD_INT 2
 481: ARRAY
 482: PPUSH
 483: LD_STRING B3z
 485: PPUSH
 486: CALL_OW 88
// Say ( Nefarem , B4n ) ;
 490: LD_EXP 3
 494: PPUSH
 495: LD_STRING B4n
 497: PPUSH
 498: CALL_OW 88
// Say ( Nefarem , B5n ) ;
 502: LD_EXP 3
 506: PPUSH
 507: LD_STRING B5n
 509: PPUSH
 510: CALL_OW 88
// InGameOff ;
 514: CALL_OW 9
// ChangeMissionObjectives ( M1 ) ;
 518: LD_STRING M1
 520: PPUSH
 521: CALL_OW 337
// SaveForQuickRestart ;
 525: CALL_OW 22
// FirstAttack = false ;
 529: LD_ADDR_EXP 1
 533: PUSH
 534: LD_INT 0
 536: ST_TO_ADDR
// Ataki = 1 ;
 537: LD_ADDR_EXP 9
 541: PUSH
 542: LD_INT 1
 544: ST_TO_ADDR
// end ;
 545: PPOPN 1
 547: END
// every 2 2$15 trigger Ataki = 2 do
 548: LD_EXP 9
 552: PUSH
 553: LD_INT 2
 555: EQUAL
 556: IFFALSE 570
 558: GO 560
 560: DISABLE
// begin enable ;
 561: ENABLE
// Atakowanie1 ;
 562: CALL 2753 0 0
// Atakowanie2 ;
 566: CALL 2990 0 0
// end ;
 570: END
// every 0 0$01 trigger IsInArea ( Nefarem , CallHelp ) and Ataki = 1 do
 571: LD_EXP 3
 575: PPUSH
 576: LD_INT 16
 578: PPUSH
 579: CALL_OW 308
 583: PUSH
 584: LD_EXP 9
 588: PUSH
 589: LD_INT 1
 591: EQUAL
 592: AND
 593: IFFALSE 689
 595: GO 597
 597: DISABLE
// begin DialogueOn ;
 598: CALL_OW 6
// SayRadio ( Nefarem , C1n ) ;
 602: LD_EXP 3
 606: PPUSH
 607: LD_STRING C1n
 609: PPUSH
 610: CALL_OW 94
// SayRadio ( GEN , C2g ) ;
 614: LD_EXP 4
 618: PPUSH
 619: LD_STRING C2g
 621: PPUSH
 622: CALL_OW 94
// SayRadio ( Nefarem , C3n ) ;
 626: LD_EXP 3
 630: PPUSH
 631: LD_STRING C3n
 633: PPUSH
 634: CALL_OW 94
// SayRadio ( GEN , C4g ) ;
 638: LD_EXP 4
 642: PPUSH
 643: LD_STRING C4g
 645: PPUSH
 646: CALL_OW 94
// SayRadio ( Nefarem , C5n ) ;
 650: LD_EXP 3
 654: PPUSH
 655: LD_STRING C5n
 657: PPUSH
 658: CALL_OW 94
// DialogueOff ;
 662: CALL_OW 7
// ChangeMissionObjectives ( M2 ) ;
 666: LD_STRING M2
 668: PPUSH
 669: CALL_OW 337
// Ataki = 2 ;
 673: LD_ADDR_EXP 9
 677: PUSH
 678: LD_INT 2
 680: ST_TO_ADDR
// WezwanieRadaru = 1 ;
 681: LD_ADDR_EXP 2
 685: PUSH
 686: LD_INT 1
 688: ST_TO_ADDR
// end ;
 689: END
// every 9 9$00 trigger WezwanieRadaru = 1 do
 690: LD_EXP 2
 694: PUSH
 695: LD_INT 1
 697: EQUAL
 698: IFFALSE 707
 700: GO 702
 702: DISABLE
// begin RadarMan ;
 703: CALL 2243 0 0
// end ;
 707: END
// every 0 0$01 trigger IsInArea ( saperMAN , ExplosionStart ) and FilterAllUnits ( [ [ f_side , 2 ] , [ f_or , [ [ f_type , unit_vehicle ] , [ f_type , unit_human ] ] ] ] ) = 0 do
 708: LD_EXP 5
 712: PPUSH
 713: LD_INT 4
 715: PPUSH
 716: CALL_OW 308
 720: PUSH
 721: LD_INT 22
 723: PUSH
 724: LD_INT 2
 726: PUSH
 727: EMPTY
 728: LIST
 729: LIST
 730: PUSH
 731: LD_INT 2
 733: PUSH
 734: LD_INT 21
 736: PUSH
 737: LD_INT 2
 739: PUSH
 740: EMPTY
 741: LIST
 742: LIST
 743: PUSH
 744: LD_INT 21
 746: PUSH
 747: LD_INT 1
 749: PUSH
 750: EMPTY
 751: LIST
 752: LIST
 753: PUSH
 754: EMPTY
 755: LIST
 756: LIST
 757: PUSH
 758: EMPTY
 759: LIST
 760: LIST
 761: PUSH
 762: EMPTY
 763: LIST
 764: LIST
 765: PPUSH
 766: CALL_OW 69
 770: PUSH
 771: LD_INT 0
 773: EQUAL
 774: AND
 775: IFFALSE 1173
 777: GO 779
 779: DISABLE
// begin ComMoveXY ( Nefarem , 69 , 39 ) ;
 780: LD_EXP 3
 784: PPUSH
 785: LD_INT 69
 787: PPUSH
 788: LD_INT 39
 790: PPUSH
 791: CALL_OW 111
// ComExitVehicle ( saperMAN ) ;
 795: LD_EXP 5
 799: PPUSH
 800: CALL_OW 121
// wait ( 0 0$05 ) ;
 804: LD_INT 175
 806: PPUSH
 807: CALL_OW 67
// DialogueON ;
 811: CALL_OW 6
// Say ( saperMAN , D1 ) ;
 815: LD_EXP 5
 819: PPUSH
 820: LD_STRING D1
 822: PPUSH
 823: CALL_OW 88
// Say ( Nefarem , D2 ) ;
 827: LD_EXP 3
 831: PPUSH
 832: LD_STRING D2
 834: PPUSH
 835: CALL_OW 88
// Say ( saperMAN , D3 ) ;
 839: LD_EXP 5
 843: PPUSH
 844: LD_STRING D3
 846: PPUSH
 847: CALL_OW 88
// DialogueOFF ;
 851: CALL_OW 7
// ComCrawl ( saperMAN ) ;
 855: LD_EXP 5
 859: PPUSH
 860: CALL_OW 137
// AddComMoveXY ( saperMAN , 63 , 27 ) ;
 864: LD_EXP 5
 868: PPUSH
 869: LD_INT 63
 871: PPUSH
 872: LD_INT 27
 874: PPUSH
 875: CALL_OW 171
// wait ( 0 0$30 ) ;
 879: LD_INT 1050
 881: PPUSH
 882: CALL_OW 67
// AddComMoveXY ( saperMAN , 62 , 18 ) ;
 886: LD_EXP 5
 890: PPUSH
 891: LD_INT 62
 893: PPUSH
 894: LD_INT 18
 896: PPUSH
 897: CALL_OW 171
// wait ( 0 0$30 ) ;
 901: LD_INT 1050
 903: PPUSH
 904: CALL_OW 67
// AddComMoveXY ( saperMAN , 59 , 11 ) ;
 908: LD_EXP 5
 912: PPUSH
 913: LD_INT 59
 915: PPUSH
 916: LD_INT 11
 918: PPUSH
 919: CALL_OW 171
// wait ( 0 0$30 ) ;
 923: LD_INT 1050
 925: PPUSH
 926: CALL_OW 67
// AddComMoveXY ( saperMAN , 55 , 4 ) ;
 930: LD_EXP 5
 934: PPUSH
 935: LD_INT 55
 937: PPUSH
 938: LD_INT 4
 940: PPUSH
 941: CALL_OW 171
// wait ( 0 0$30 ) ;
 945: LD_INT 1050
 947: PPUSH
 948: CALL_OW 67
// AddComMoveXY ( saperMAN , 54 , 8 ) ;
 952: LD_EXP 5
 956: PPUSH
 957: LD_INT 54
 959: PPUSH
 960: LD_INT 8
 962: PPUSH
 963: CALL_OW 171
// wait ( 0 0$30 ) ;
 967: LD_INT 1050
 969: PPUSH
 970: CALL_OW 67
// AddComMoveXY ( saperMAN , 57 , 15 ) ;
 974: LD_EXP 5
 978: PPUSH
 979: LD_INT 57
 981: PPUSH
 982: LD_INT 15
 984: PPUSH
 985: CALL_OW 171
// wait ( 0 0$30 ) ;
 989: LD_INT 1050
 991: PPUSH
 992: CALL_OW 67
// AddComMoveXY ( saperMAN , 61 , 24 ) ;
 996: LD_EXP 5
1000: PPUSH
1001: LD_INT 61
1003: PPUSH
1004: LD_INT 24
1006: PPUSH
1007: CALL_OW 171
// wait ( 0 0$30 ) ;
1011: LD_INT 1050
1013: PPUSH
1014: CALL_OW 67
// AddComWalk ( saperMAN ) ;
1018: LD_EXP 5
1022: PPUSH
1023: CALL_OW 198
// AddComMoveXY ( saperMAN , 68 , 39 ) ;
1027: LD_EXP 5
1031: PPUSH
1032: LD_INT 68
1034: PPUSH
1035: LD_INT 39
1037: PPUSH
1038: CALL_OW 171
// wait ( 0 0$10 ) ;
1042: LD_INT 350
1044: PPUSH
1045: CALL_OW 67
// Say ( saperMAN , E1 ) ;
1049: LD_EXP 5
1053: PPUSH
1054: LD_STRING E1
1056: PPUSH
1057: CALL_OW 88
// Say ( Nefarem , E2 ) ;
1061: LD_EXP 3
1065: PPUSH
1066: LD_STRING E2
1068: PPUSH
1069: CALL_OW 88
// Say ( saperMAN , E3 ) ;
1073: LD_EXP 5
1077: PPUSH
1078: LD_STRING E3
1080: PPUSH
1081: CALL_OW 88
// Say ( Nefarem , E4 ) ;
1085: LD_EXP 3
1089: PPUSH
1090: LD_STRING E4
1092: PPUSH
1093: CALL_OW 88
// DontEnter = false ;
1097: LD_ADDR_EXP 8
1101: PUSH
1102: LD_INT 0
1104: ST_TO_ADDR
// ComMoveXY ( saperMAN , 95 , 92 ) ;
1105: LD_EXP 5
1109: PPUSH
1110: LD_INT 95
1112: PPUSH
1113: LD_INT 92
1115: PPUSH
1116: CALL_OW 111
// ChangeMissionObjectives ( M3 ) ;
1120: LD_STRING M3
1122: PPUSH
1123: CALL_OW 337
// SetAreaMapShow ( EndArea , 1 ) ;
1127: LD_INT 15
1129: PPUSH
1130: LD_INT 1
1132: PPUSH
1133: CALL_OW 424
// SetSide ( FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] ] ) , 4 ) ;
1137: LD_INT 22
1139: PUSH
1140: LD_INT 1
1142: PUSH
1143: EMPTY
1144: LIST
1145: LIST
1146: PUSH
1147: LD_INT 21
1149: PUSH
1150: LD_INT 2
1152: PUSH
1153: EMPTY
1154: LIST
1155: LIST
1156: PUSH
1157: EMPTY
1158: LIST
1159: LIST
1160: PPUSH
1161: CALL_OW 69
1165: PPUSH
1166: LD_INT 4
1168: PPUSH
1169: CALL_OW 235
// end ;
1173: END
// every 0 0$01 trigger FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] , [ f_inarea , EndArea ] ] ) >= 1 do
1174: LD_INT 22
1176: PUSH
1177: LD_INT 4
1179: PUSH
1180: EMPTY
1181: LIST
1182: LIST
1183: PUSH
1184: LD_INT 21
1186: PUSH
1187: LD_INT 1
1189: PUSH
1190: EMPTY
1191: LIST
1192: LIST
1193: PUSH
1194: LD_INT 95
1196: PUSH
1197: LD_INT 15
1199: PUSH
1200: EMPTY
1201: LIST
1202: LIST
1203: PUSH
1204: EMPTY
1205: LIST
1206: LIST
1207: LIST
1208: PPUSH
1209: CALL_OW 69
1213: PUSH
1214: LD_INT 1
1216: GREATEREQUAL
1217: IFFALSE 1242
1219: GO 1221
1221: DISABLE
// begin case query ( part1 ) of 1 :
1222: LD_STRING part1
1224: PPUSH
1225: CALL_OW 97
1229: PUSH
1230: LD_INT 1
1232: DOUBLE
1233: EQUAL
1234: IFTRUE 1238
1236: GO 1241
1238: POP
// begin end ; end ;
1239: GO 1242
1241: POP
// end ; end_of_file
1242: END
// export GEN ; every 0 0$01 do var l , un , ve , LevelS ;
1243: GO 1245
1245: DISABLE
1246: LD_INT 0
1248: PPUSH
1249: PPUSH
1250: PPUSH
1251: PPUSH
// begin hc_basic_skills = [ Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Rand ( 0 , 2 ) , Rand ( 0 , 2 ) ] ;
1252: LD_ADDR_OWVAR 30
1256: PUSH
1257: LD_INT 0
1259: PPUSH
1260: LD_INT 2
1262: PPUSH
1263: CALL_OW 12
1267: PUSH
1268: LD_INT 0
1270: PPUSH
1271: LD_INT 2
1273: PPUSH
1274: CALL_OW 12
1278: PUSH
1279: LD_INT 0
1281: PPUSH
1282: LD_INT 2
1284: PPUSH
1285: CALL_OW 12
1289: PUSH
1290: LD_INT 0
1292: PPUSH
1293: LD_INT 2
1295: PPUSH
1296: CALL_OW 12
1300: PUSH
1301: EMPTY
1302: LIST
1303: LIST
1304: LIST
1305: LIST
1306: ST_TO_ADDR
// l = 0 ;
1307: LD_ADDR_VAR 0 1
1311: PUSH
1312: LD_INT 0
1314: ST_TO_ADDR
// repeat if l = 4 then
1315: LD_VAR 0 1
1319: PUSH
1320: LD_INT 4
1322: EQUAL
1323: IFFALSE 1335
// begin hc_class = 3 ;
1325: LD_ADDR_OWVAR 28
1329: PUSH
1330: LD_INT 3
1332: ST_TO_ADDR
// end else
1333: GO 1363
// if l = 5 then
1335: LD_VAR 0 1
1339: PUSH
1340: LD_INT 5
1342: EQUAL
1343: IFFALSE 1355
// begin hc_class = 4 ;
1345: LD_ADDR_OWVAR 28
1349: PUSH
1350: LD_INT 4
1352: ST_TO_ADDR
// end else
1353: GO 1363
// begin hc_class = 1 ;
1355: LD_ADDR_OWVAR 28
1359: PUSH
1360: LD_INT 1
1362: ST_TO_ADDR
// end ; hc_name =  ;
1363: LD_ADDR_OWVAR 26
1367: PUSH
1368: LD_STRING 
1370: ST_TO_ADDR
// uc_side = 4 ;
1371: LD_ADDR_OWVAR 20
1375: PUSH
1376: LD_INT 4
1378: ST_TO_ADDR
// uc_nation = 1 ;
1379: LD_ADDR_OWVAR 21
1383: PUSH
1384: LD_INT 1
1386: ST_TO_ADDR
// hc_gallery =  ;
1387: LD_ADDR_OWVAR 33
1391: PUSH
1392: LD_STRING 
1394: ST_TO_ADDR
// hc_sex = sex_male ;
1395: LD_ADDR_OWVAR 27
1399: PUSH
1400: LD_INT 1
1402: ST_TO_ADDR
// if l = 4 then
1403: LD_VAR 0 1
1407: PUSH
1408: LD_INT 4
1410: EQUAL
1411: IFFALSE 1470
// begin hc_class = 3 ;
1413: LD_ADDR_OWVAR 28
1417: PUSH
1418: LD_INT 3
1420: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , 8 , Rand ( 0 , 5 ) ] ;
1421: LD_ADDR_OWVAR 31
1425: PUSH
1426: LD_INT 0
1428: PPUSH
1429: LD_INT 5
1431: PPUSH
1432: CALL_OW 12
1436: PUSH
1437: LD_INT 0
1439: PPUSH
1440: LD_INT 5
1442: PPUSH
1443: CALL_OW 12
1447: PUSH
1448: LD_INT 8
1450: PUSH
1451: LD_INT 0
1453: PPUSH
1454: LD_INT 5
1456: PPUSH
1457: CALL_OW 12
1461: PUSH
1462: EMPTY
1463: LIST
1464: LIST
1465: LIST
1466: LIST
1467: ST_TO_ADDR
// end else
1468: GO 1604
// if l = 5 then
1470: LD_VAR 0 1
1474: PUSH
1475: LD_INT 5
1477: EQUAL
1478: IFFALSE 1537
// begin hc_class = 4 ;
1480: LD_ADDR_OWVAR 28
1484: PUSH
1485: LD_INT 4
1487: ST_TO_ADDR
// hc_skills = [ Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , 7 ] ;
1488: LD_ADDR_OWVAR 31
1492: PUSH
1493: LD_INT 0
1495: PPUSH
1496: LD_INT 5
1498: PPUSH
1499: CALL_OW 12
1503: PUSH
1504: LD_INT 0
1506: PPUSH
1507: LD_INT 5
1509: PPUSH
1510: CALL_OW 12
1514: PUSH
1515: LD_INT 0
1517: PPUSH
1518: LD_INT 5
1520: PPUSH
1521: CALL_OW 12
1525: PUSH
1526: LD_INT 7
1528: PUSH
1529: EMPTY
1530: LIST
1531: LIST
1532: LIST
1533: LIST
1534: ST_TO_ADDR
// end else
1535: GO 1604
// begin hc_class = 1 ;
1537: LD_ADDR_OWVAR 28
1541: PUSH
1542: LD_INT 1
1544: ST_TO_ADDR
// hc_skills = [ 7 - Rand ( 0 , 1 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
1545: LD_ADDR_OWVAR 31
1549: PUSH
1550: LD_INT 7
1552: PUSH
1553: LD_INT 0
1555: PPUSH
1556: LD_INT 1
1558: PPUSH
1559: CALL_OW 12
1563: MINUS
1564: PUSH
1565: LD_INT 0
1567: PPUSH
1568: LD_INT 5
1570: PPUSH
1571: CALL_OW 12
1575: PUSH
1576: LD_INT 0
1578: PPUSH
1579: LD_INT 5
1581: PPUSH
1582: CALL_OW 12
1586: PUSH
1587: LD_INT 0
1589: PPUSH
1590: LD_INT 5
1592: PPUSH
1593: CALL_OW 12
1597: PUSH
1598: EMPTY
1599: LIST
1600: LIST
1601: LIST
1602: LIST
1603: ST_TO_ADDR
// end ; un = CreateHuman ;
1604: LD_ADDR_VAR 0 2
1608: PUSH
1609: CALL_OW 44
1613: ST_TO_ADDR
// PlaceUnitArea ( un , HumanSpawnRight , false ) ;
1614: LD_VAR 0 2
1618: PPUSH
1619: LD_INT 2
1621: PPUSH
1622: LD_INT 0
1624: PPUSH
1625: CALL_OW 49
// l = l + 1 ;
1629: LD_ADDR_VAR 0 1
1633: PUSH
1634: LD_VAR 0 1
1638: PUSH
1639: LD_INT 1
1641: PLUS
1642: ST_TO_ADDR
// ComMoveXY ( un , 96 , 85 ) ;
1643: LD_VAR 0 2
1647: PPUSH
1648: LD_INT 96
1650: PPUSH
1651: LD_INT 85
1653: PPUSH
1654: CALL_OW 111
// wait ( 0 0$0.8 ) ;
1658: LD_INT 28
1660: PPUSH
1661: CALL_OW 67
// ADdComMoveXY ( un , 92 , 75 ) ;
1665: LD_VAR 0 2
1669: PPUSH
1670: LD_INT 92
1672: PPUSH
1673: LD_INT 75
1675: PPUSH
1676: CALL_OW 171
// wait ( 0 0$0.8 ) ;
1680: LD_INT 28
1682: PPUSH
1683: CALL_OW 67
// AddComMoveXY ( un , 87 , 66 ) ;
1687: LD_VAR 0 2
1691: PPUSH
1692: LD_INT 87
1694: PPUSH
1695: LD_INT 66
1697: PPUSH
1698: CALL_OW 171
// wait ( 0 0$0.8 ) ;
1702: LD_INT 28
1704: PPUSH
1705: CALL_OW 67
// AddComMoveXY ( un , 75 , 43 ) ;
1709: LD_VAR 0 2
1713: PPUSH
1714: LD_INT 75
1716: PPUSH
1717: LD_INT 43
1719: PPUSH
1720: CALL_OW 171
// wait ( 0 0$02 ) ;
1724: LD_INT 70
1726: PPUSH
1727: CALL_OW 67
// until l = 6 ;
1731: LD_VAR 0 1
1735: PUSH
1736: LD_INT 6
1738: EQUAL
1739: IFFALSE 1315
// end ;
1741: PPOPN 4
1743: END
// every 0 0$01 do var x , un , ve ;
1744: GO 1746
1746: DISABLE
1747: LD_INT 0
1749: PPUSH
1750: PPUSH
1751: PPUSH
// begin x = 0 ;
1752: LD_ADDR_VAR 0 1
1756: PUSH
1757: LD_INT 0
1759: ST_TO_ADDR
// repeat hc_class = 1 ;
1760: LD_ADDR_OWVAR 28
1764: PUSH
1765: LD_INT 1
1767: ST_TO_ADDR
// hc_name =  ;
1768: LD_ADDR_OWVAR 26
1772: PUSH
1773: LD_STRING 
1775: ST_TO_ADDR
// uc_side = 4 ;
1776: LD_ADDR_OWVAR 20
1780: PUSH
1781: LD_INT 4
1783: ST_TO_ADDR
// uc_nation = 1 ;
1784: LD_ADDR_OWVAR 21
1788: PUSH
1789: LD_INT 1
1791: ST_TO_ADDR
// hc_gallery =  ;
1792: LD_ADDR_OWVAR 33
1796: PUSH
1797: LD_STRING 
1799: ST_TO_ADDR
// hc_sex = sex_male ;
1800: LD_ADDR_OWVAR 27
1804: PUSH
1805: LD_INT 1
1807: ST_TO_ADDR
// hc_skills = [ 7 - Rand ( 0 , 1 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
1808: LD_ADDR_OWVAR 31
1812: PUSH
1813: LD_INT 7
1815: PUSH
1816: LD_INT 0
1818: PPUSH
1819: LD_INT 1
1821: PPUSH
1822: CALL_OW 12
1826: MINUS
1827: PUSH
1828: LD_INT 0
1830: PPUSH
1831: LD_INT 5
1833: PPUSH
1834: CALL_OW 12
1838: PUSH
1839: LD_INT 0
1841: PPUSH
1842: LD_INT 5
1844: PPUSH
1845: CALL_OW 12
1849: PUSH
1850: LD_INT 0
1852: PPUSH
1853: LD_INT 5
1855: PPUSH
1856: CALL_OW 12
1860: PUSH
1861: EMPTY
1862: LIST
1863: LIST
1864: LIST
1865: LIST
1866: ST_TO_ADDR
// un = CreateHuman ;
1867: LD_ADDR_VAR 0 2
1871: PUSH
1872: CALL_OW 44
1876: ST_TO_ADDR
// PlaceUnitArea ( un , HumanSpawnLeft , false ) ;
1877: LD_VAR 0 2
1881: PPUSH
1882: LD_INT 3
1884: PPUSH
1885: LD_INT 0
1887: PPUSH
1888: CALL_OW 49
// x = x + 1 ;
1892: LD_ADDR_VAR 0 1
1896: PUSH
1897: LD_VAR 0 1
1901: PUSH
1902: LD_INT 1
1904: PLUS
1905: ST_TO_ADDR
// ComMoveXY ( un , 89 , 84 ) ;
1906: LD_VAR 0 2
1910: PPUSH
1911: LD_INT 89
1913: PPUSH
1914: LD_INT 84
1916: PPUSH
1917: CALL_OW 111
// wait ( 0 0$0.8 ) ;
1921: LD_INT 28
1923: PPUSH
1924: CALL_OW 67
// ADdComMoveXY ( un , 86 , 75 ) ;
1928: LD_VAR 0 2
1932: PPUSH
1933: LD_INT 86
1935: PPUSH
1936: LD_INT 75
1938: PPUSH
1939: CALL_OW 171
// wait ( 0 0$0.8 ) ;
1943: LD_INT 28
1945: PPUSH
1946: CALL_OW 67
// AddComMoveXY ( un , 82 , 67 ) ;
1950: LD_VAR 0 2
1954: PPUSH
1955: LD_INT 82
1957: PPUSH
1958: LD_INT 67
1960: PPUSH
1961: CALL_OW 171
// wait ( 0 0$0.8 ) ;
1965: LD_INT 28
1967: PPUSH
1968: CALL_OW 67
// AddComMoveXY ( un , 67 , 43 ) ;
1972: LD_VAR 0 2
1976: PPUSH
1977: LD_INT 67
1979: PPUSH
1980: LD_INT 43
1982: PPUSH
1983: CALL_OW 171
// wait ( 0 0$02 ) ;
1987: LD_INT 70
1989: PPUSH
1990: CALL_OW 67
// until x = 3 ;
1994: LD_VAR 0 1
1998: PUSH
1999: LD_INT 3
2001: EQUAL
2002: IFFALSE 1760
// end ;
2004: PPOPN 3
2006: END
// every 0 0$01 do var y , un , ve ;
2007: GO 2009
2009: DISABLE
2010: LD_INT 0
2012: PPUSH
2013: PPUSH
2014: PPUSH
// begin y = 0 ;
2015: LD_ADDR_VAR 0 1
2019: PUSH
2020: LD_INT 0
2022: ST_TO_ADDR
// repeat uc_side = 1 ;
2023: LD_ADDR_OWVAR 20
2027: PUSH
2028: LD_INT 1
2030: ST_TO_ADDR
// vc_chassis = us_heavy_tracked ;
2031: LD_ADDR_OWVAR 37
2035: PUSH
2036: LD_INT 4
2038: ST_TO_ADDR
// vc_weapon = us_double_gun ;
2039: LD_ADDR_OWVAR 40
2043: PUSH
2044: LD_INT 5
2046: ST_TO_ADDR
// vc_engine = engine_combustion ;
2047: LD_ADDR_OWVAR 39
2051: PUSH
2052: LD_INT 1
2054: ST_TO_ADDR
// vc_control = control_computer ;
2055: LD_ADDR_OWVAR 38
2059: PUSH
2060: LD_INT 3
2062: ST_TO_ADDR
// ve = CreateVehicle ;
2063: LD_ADDR_VAR 0 3
2067: PUSH
2068: CALL_OW 45
2072: ST_TO_ADDR
// PlaceUnitArea ( ve , vehiclesSpawn , false ) ;
2073: LD_VAR 0 3
2077: PPUSH
2078: LD_INT 1
2080: PPUSH
2081: LD_INT 0
2083: PPUSH
2084: CALL_OW 49
// ComMoveXY ( ve , 92 , 81 ) ;
2088: LD_VAR 0 3
2092: PPUSH
2093: LD_INT 92
2095: PPUSH
2096: LD_INT 81
2098: PPUSH
2099: CALL_OW 111
// wait ( 0 0$02 ) ;
2103: LD_INT 70
2105: PPUSH
2106: CALL_OW 67
// AddComMoveXY ( ve , 86 , 69 ) ;
2110: LD_VAR 0 3
2114: PPUSH
2115: LD_INT 86
2117: PPUSH
2118: LD_INT 69
2120: PPUSH
2121: CALL_OW 171
// wait ( 0 0$01 ) ;
2125: LD_INT 35
2127: PPUSH
2128: CALL_OW 67
// AddComMoveXY ( ve , 80 , 59 ) ;
2132: LD_VAR 0 3
2136: PPUSH
2137: LD_INT 80
2139: PPUSH
2140: LD_INT 59
2142: PPUSH
2143: CALL_OW 171
// wait ( 0 0$01 ) ;
2147: LD_INT 35
2149: PPUSH
2150: CALL_OW 67
// AddComMoveXY ( ve , 73 , 46 ) ;
2154: LD_VAR 0 3
2158: PPUSH
2159: LD_INT 73
2161: PPUSH
2162: LD_INT 46
2164: PPUSH
2165: CALL_OW 171
// wait ( 0 0$01 ) ;
2169: LD_INT 35
2171: PPUSH
2172: CALL_OW 67
// AddComMoveXY ( ve , 65 , 33 ) ;
2176: LD_VAR 0 3
2180: PPUSH
2181: LD_INT 65
2183: PPUSH
2184: LD_INT 33
2186: PPUSH
2187: CALL_OW 171
// if y = 0 then
2191: LD_VAR 0 1
2195: PUSH
2196: LD_INT 0
2198: EQUAL
2199: IFFALSE 2216
// begin AddComMoveXY ( ve , 68 , 38 ) ;
2201: LD_VAR 0 3
2205: PPUSH
2206: LD_INT 68
2208: PPUSH
2209: LD_INT 38
2211: PPUSH
2212: CALL_OW 171
// end ; y = y + 1 ;
2216: LD_ADDR_VAR 0 1
2220: PUSH
2221: LD_VAR 0 1
2225: PUSH
2226: LD_INT 1
2228: PLUS
2229: ST_TO_ADDR
// until y = 5 ;
2230: LD_VAR 0 1
2234: PUSH
2235: LD_INT 5
2237: EQUAL
2238: IFFALSE 2023
// end ;
2240: PPOPN 3
2242: END
// export saperMAN ; export function RadarMan ; var ve ; begin
2243: LD_INT 0
2245: PPUSH
2246: PPUSH
// uc_side = 8 ;
2247: LD_ADDR_OWVAR 20
2251: PUSH
2252: LD_INT 8
2254: ST_TO_ADDR
// vc_chassis = us_medium_wheeled ;
2255: LD_ADDR_OWVAR 37
2259: PUSH
2260: LD_INT 2
2262: ST_TO_ADDR
// vc_weapon = us_radar ;
2263: LD_ADDR_OWVAR 40
2267: PUSH
2268: LD_INT 11
2270: ST_TO_ADDR
// vc_engine = engine_combustion ;
2271: LD_ADDR_OWVAR 39
2275: PUSH
2276: LD_INT 1
2278: ST_TO_ADDR
// vc_control = control_manual ;
2279: LD_ADDR_OWVAR 38
2283: PUSH
2284: LD_INT 1
2286: ST_TO_ADDR
// ve = CreateVehicle ;
2287: LD_ADDR_VAR 0 2
2291: PUSH
2292: CALL_OW 45
2296: ST_TO_ADDR
// PlaceUnitArea ( ve , vehiclesSpawn , false ) ;
2297: LD_VAR 0 2
2301: PPUSH
2302: LD_INT 1
2304: PPUSH
2305: LD_INT 0
2307: PPUSH
2308: CALL_OW 49
// hc_class = 1 ;
2312: LD_ADDR_OWVAR 28
2316: PUSH
2317: LD_INT 1
2319: ST_TO_ADDR
// hc_name =  ;
2320: LD_ADDR_OWVAR 26
2324: PUSH
2325: LD_STRING 
2327: ST_TO_ADDR
// uc_side = 8 ;
2328: LD_ADDR_OWVAR 20
2332: PUSH
2333: LD_INT 8
2335: ST_TO_ADDR
// uc_nation = 1 ;
2336: LD_ADDR_OWVAR 21
2340: PUSH
2341: LD_INT 1
2343: ST_TO_ADDR
// hc_gallery =  ;
2344: LD_ADDR_OWVAR 33
2348: PUSH
2349: LD_STRING 
2351: ST_TO_ADDR
// hc_sex = sex_male ;
2352: LD_ADDR_OWVAR 27
2356: PUSH
2357: LD_INT 1
2359: ST_TO_ADDR
// hc_skills = [ 7 , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) , Rand ( 0 , 5 ) ] ;
2360: LD_ADDR_OWVAR 31
2364: PUSH
2365: LD_INT 7
2367: PUSH
2368: LD_INT 0
2370: PPUSH
2371: LD_INT 5
2373: PPUSH
2374: CALL_OW 12
2378: PUSH
2379: LD_INT 0
2381: PPUSH
2382: LD_INT 5
2384: PPUSH
2385: CALL_OW 12
2389: PUSH
2390: LD_INT 0
2392: PPUSH
2393: LD_INT 5
2395: PPUSH
2396: CALL_OW 12
2400: PUSH
2401: EMPTY
2402: LIST
2403: LIST
2404: LIST
2405: LIST
2406: ST_TO_ADDR
// saperMAN = CreateHuman ;
2407: LD_ADDR_EXP 5
2411: PUSH
2412: CALL_OW 44
2416: ST_TO_ADDR
// PlaceHumanInUnit ( saperMAN , ve ) ;
2417: LD_EXP 5
2421: PPUSH
2422: LD_VAR 0 2
2426: PPUSH
2427: CALL_OW 52
// ComMoveXY ( saperMAN , 68 , 38 ) ;
2431: LD_EXP 5
2435: PPUSH
2436: LD_INT 68
2438: PPUSH
2439: LD_INT 38
2441: PPUSH
2442: CALL_OW 111
// end ;
2446: LD_VAR 0 1
2450: RET
// every 0 0$01 do
2451: GO 2453
2453: DISABLE
// begin hc_class = 1 ;
2454: LD_ADDR_OWVAR 28
2458: PUSH
2459: LD_INT 1
2461: ST_TO_ADDR
// uc_side = 1 ;
2462: LD_ADDR_OWVAR 20
2466: PUSH
2467: LD_INT 1
2469: ST_TO_ADDR
// uc_nation = 1 ;
2470: LD_ADDR_OWVAR 21
2474: PUSH
2475: LD_INT 1
2477: ST_TO_ADDR
// GEN := CreateCharacter ( GEN ) ;
2478: LD_ADDR_EXP 4
2482: PUSH
2483: LD_STRING GEN
2485: PPUSH
2486: CALL_OW 34
2490: ST_TO_ADDR
// end ; end_of_file
2491: END
// export UnitOverlay1 , UnitOverlay2 , DontEnter ; every 0 0$01 do
2492: GO 2494
2494: DISABLE
// begin enable ;
2495: ENABLE
// UnitOverlay1 = FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] , [ f_inarea , AreaExplosion ] ] ) ^ FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] , [ f_inarea , AreaExplosion ] ] ) ;
2496: LD_ADDR_EXP 6
2500: PUSH
2501: LD_INT 22
2503: PUSH
2504: LD_INT 4
2506: PUSH
2507: EMPTY
2508: LIST
2509: LIST
2510: PUSH
2511: LD_INT 21
2513: PUSH
2514: LD_INT 2
2516: PUSH
2517: EMPTY
2518: LIST
2519: LIST
2520: PUSH
2521: LD_INT 33
2523: PUSH
2524: LD_INT 3
2526: PUSH
2527: EMPTY
2528: LIST
2529: LIST
2530: PUSH
2531: LD_INT 95
2533: PUSH
2534: LD_INT 5
2536: PUSH
2537: EMPTY
2538: LIST
2539: LIST
2540: PUSH
2541: EMPTY
2542: LIST
2543: LIST
2544: LIST
2545: LIST
2546: PPUSH
2547: CALL_OW 69
2551: PUSH
2552: LD_INT 22
2554: PUSH
2555: LD_INT 4
2557: PUSH
2558: EMPTY
2559: LIST
2560: LIST
2561: PUSH
2562: LD_INT 21
2564: PUSH
2565: LD_INT 1
2567: PUSH
2568: EMPTY
2569: LIST
2570: LIST
2571: PUSH
2572: LD_INT 95
2574: PUSH
2575: LD_INT 5
2577: PUSH
2578: EMPTY
2579: LIST
2580: LIST
2581: PUSH
2582: EMPTY
2583: LIST
2584: LIST
2585: LIST
2586: PPUSH
2587: CALL_OW 69
2591: ADD
2592: ST_TO_ADDR
// ; UnitOverlay2 = FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_human ] , [ f_inarea , AreaExplosionDisabled ] ] ) ;
2593: LD_ADDR_EXP 7
2597: PUSH
2598: LD_INT 22
2600: PUSH
2601: LD_INT 4
2603: PUSH
2604: EMPTY
2605: LIST
2606: LIST
2607: PUSH
2608: LD_INT 21
2610: PUSH
2611: LD_INT 1
2613: PUSH
2614: EMPTY
2615: LIST
2616: LIST
2617: PUSH
2618: LD_INT 95
2620: PUSH
2621: LD_INT 6
2623: PUSH
2624: EMPTY
2625: LIST
2626: LIST
2627: PUSH
2628: EMPTY
2629: LIST
2630: LIST
2631: LIST
2632: PPUSH
2633: CALL_OW 69
2637: ST_TO_ADDR
// if UnitOverlay1 >= 1 then
2638: LD_EXP 6
2642: PUSH
2643: LD_INT 1
2645: GREATEREQUAL
2646: IFFALSE 2690
// begin MineExplosion ( GetX ( UnitOverlay1 [ 1 ] ) , GetY ( Unitoverlay1 [ 1 ] ) , 1000 ) ;
2648: LD_EXP 6
2652: PUSH
2653: LD_INT 1
2655: ARRAY
2656: PPUSH
2657: CALL_OW 250
2661: PPUSH
2662: LD_EXP 6
2666: PUSH
2667: LD_INT 1
2669: ARRAY
2670: PPUSH
2671: CALL_OW 251
2675: PPUSH
2676: LD_INT 1000
2678: PPUSH
2679: CALL_OW 453
// wait ( 0 0$01 ) ;
2683: LD_INT 35
2685: PPUSH
2686: CALL_OW 67
// end ; if UnitOverlay2 >= 1 and DontEnter = true then
2690: LD_EXP 7
2694: PUSH
2695: LD_INT 1
2697: GREATEREQUAL
2698: PUSH
2699: LD_EXP 8
2703: PUSH
2704: LD_INT 1
2706: EQUAL
2707: AND
2708: IFFALSE 2752
// begin MineExplosion ( GetX ( UnitOverlay2 [ 1 ] ) , GetY ( UnitOverlay2 [ 1 ] ) , 1000 ) ;
2710: LD_EXP 7
2714: PUSH
2715: LD_INT 1
2717: ARRAY
2718: PPUSH
2719: CALL_OW 250
2723: PPUSH
2724: LD_EXP 7
2728: PUSH
2729: LD_INT 1
2731: ARRAY
2732: PPUSH
2733: CALL_OW 251
2737: PPUSH
2738: LD_INT 1000
2740: PPUSH
2741: CALL_OW 453
// wait ( 0 0$01 ) ;
2745: LD_INT 35
2747: PPUSH
2748: CALL_OW 67
// end ; end ; end_of_file
2752: END
// export Ataki ; export function Atakowanie1 ; var l , y , un , ve , LevelS ; begin
2753: LD_INT 0
2755: PPUSH
2756: PPUSH
2757: PPUSH
2758: PPUSH
2759: PPUSH
2760: PPUSH
// LevelS = [ 5 , 6 , 6 ] [ Difficulty ] ;
2761: LD_ADDR_VAR 0 6
2765: PUSH
2766: LD_INT 5
2768: PUSH
2769: LD_INT 6
2771: PUSH
2772: LD_INT 6
2774: PUSH
2775: EMPTY
2776: LIST
2777: LIST
2778: LIST
2779: PUSH
2780: LD_OWVAR 67
2784: ARRAY
2785: ST_TO_ADDR
// l = 0 ;
2786: LD_ADDR_VAR 0 2
2790: PUSH
2791: LD_INT 0
2793: ST_TO_ADDR
// repeat RandPos ;
2794: CALL 3211 0 0
// hc_class = 1 ;
2798: LD_ADDR_OWVAR 28
2802: PUSH
2803: LD_INT 1
2805: ST_TO_ADDR
// hc_name =  ;
2806: LD_ADDR_OWVAR 26
2810: PUSH
2811: LD_STRING 
2813: ST_TO_ADDR
// uc_side = 2 ;
2814: LD_ADDR_OWVAR 20
2818: PUSH
2819: LD_INT 2
2821: ST_TO_ADDR
// uc_nation = 2 ;
2822: LD_ADDR_OWVAR 21
2826: PUSH
2827: LD_INT 2
2829: ST_TO_ADDR
// hc_gallery =  ;
2830: LD_ADDR_OWVAR 33
2834: PUSH
2835: LD_STRING 
2837: ST_TO_ADDR
// hc_sex = sex_male ;
2838: LD_ADDR_OWVAR 27
2842: PUSH
2843: LD_INT 1
2845: ST_TO_ADDR
// hc_skills = [ LevelS , Rand ( 2 , 4 ) , Rand ( 0 , 4 ) , Rand ( 0 , 2 ) ] ;
2846: LD_ADDR_OWVAR 31
2850: PUSH
2851: LD_VAR 0 6
2855: PUSH
2856: LD_INT 2
2858: PPUSH
2859: LD_INT 4
2861: PPUSH
2862: CALL_OW 12
2866: PUSH
2867: LD_INT 0
2869: PPUSH
2870: LD_INT 4
2872: PPUSH
2873: CALL_OW 12
2877: PUSH
2878: LD_INT 0
2880: PPUSH
2881: LD_INT 2
2883: PPUSH
2884: CALL_OW 12
2888: PUSH
2889: EMPTY
2890: LIST
2891: LIST
2892: LIST
2893: LIST
2894: ST_TO_ADDR
// un = CreateHuman ;
2895: LD_ADDR_VAR 0 4
2899: PUSH
2900: CALL_OW 44
2904: ST_TO_ADDR
// PlaceUnitArea ( un , spawnarea , false ) ;
2905: LD_VAR 0 4
2909: PPUSH
2910: LD_EXP 10
2914: PPUSH
2915: LD_INT 0
2917: PPUSH
2918: CALL_OW 49
// l = l + 1 ;
2922: LD_ADDR_VAR 0 2
2926: PUSH
2927: LD_VAR 0 2
2931: PUSH
2932: LD_INT 1
2934: PLUS
2935: ST_TO_ADDR
// ComAgressiveMove ( un , 81 , 62 ) ;
2936: LD_VAR 0 4
2940: PPUSH
2941: LD_INT 81
2943: PPUSH
2944: LD_INT 62
2946: PPUSH
2947: CALL_OW 114
// wait ( 0 0$01.5 ) ;
2951: LD_INT 52
2953: PPUSH
2954: CALL_OW 67
// until l = [ 6 , 7 , 7 ] [ Difficulty ] ;
2958: LD_VAR 0 2
2962: PUSH
2963: LD_INT 6
2965: PUSH
2966: LD_INT 7
2968: PUSH
2969: LD_INT 7
2971: PUSH
2972: EMPTY
2973: LIST
2974: LIST
2975: LIST
2976: PUSH
2977: LD_OWVAR 67
2981: ARRAY
2982: EQUAL
2983: IFFALSE 2794
// end ;
2985: LD_VAR 0 1
2989: RET
// export function Atakowanie2 ; var x , y , un , ve , LevelS ; begin
2990: LD_INT 0
2992: PPUSH
2993: PPUSH
2994: PPUSH
2995: PPUSH
2996: PPUSH
2997: PPUSH
// x = 0 ;
2998: LD_ADDR_VAR 0 2
3002: PUSH
3003: LD_INT 0
3005: ST_TO_ADDR
// repeat RandPos ;
3006: CALL 3211 0 0
// if Difficulty = 1 then
3010: LD_OWVAR 67
3014: PUSH
3015: LD_INT 1
3017: EQUAL
3018: IFFALSE 3030
// begin vc_chassis = ru_medium_wheeled ;
3020: LD_ADDR_OWVAR 37
3024: PUSH
3025: LD_INT 21
3027: ST_TO_ADDR
// end else
3028: GO 3068
// if Difficulty = 2 then
3030: LD_OWVAR 67
3034: PUSH
3035: LD_INT 2
3037: EQUAL
3038: IFFALSE 3050
// begin vc_chassis = ru_medium_tracked ;
3040: LD_ADDR_OWVAR 37
3044: PUSH
3045: LD_INT 22
3047: ST_TO_ADDR
// end else
3048: GO 3068
// if Difficulty = 3 then
3050: LD_OWVAR 67
3054: PUSH
3055: LD_INT 3
3057: EQUAL
3058: IFFALSE 3068
// begin vc_chassis = ru_heavy_wheeled ;
3060: LD_ADDR_OWVAR 37
3064: PUSH
3065: LD_INT 23
3067: ST_TO_ADDR
// end ; if x = 1 then
3068: LD_VAR 0 2
3072: PUSH
3073: LD_INT 1
3075: EQUAL
3076: IFFALSE 3088
// begin vc_weapon = ru_gatling_gun ;
3078: LD_ADDR_OWVAR 40
3082: PUSH
3083: LD_INT 43
3085: ST_TO_ADDR
// end else
3086: GO 3096
// begin vc_weapon = ru_gun ;
3088: LD_ADDR_OWVAR 40
3092: PUSH
3093: LD_INT 44
3095: ST_TO_ADDR
// end ; vc_engine = engine_combustion ;
3096: LD_ADDR_OWVAR 39
3100: PUSH
3101: LD_INT 1
3103: ST_TO_ADDR
// vc_control = control_computer ;
3104: LD_ADDR_OWVAR 38
3108: PUSH
3109: LD_INT 3
3111: ST_TO_ADDR
// ve = CreateVehicle ;
3112: LD_ADDR_VAR 0 5
3116: PUSH
3117: CALL_OW 45
3121: ST_TO_ADDR
// PlaceUnitArea ( ve , spawnarea , false ) ;
3122: LD_VAR 0 5
3126: PPUSH
3127: LD_EXP 10
3131: PPUSH
3132: LD_INT 0
3134: PPUSH
3135: CALL_OW 49
// ComAgressiveMove ( ve , 81 , 62 ) ;
3139: LD_VAR 0 5
3143: PPUSH
3144: LD_INT 81
3146: PPUSH
3147: LD_INT 62
3149: PPUSH
3150: CALL_OW 114
// x = x + 1 ;
3154: LD_ADDR_VAR 0 2
3158: PUSH
3159: LD_VAR 0 2
3163: PUSH
3164: LD_INT 1
3166: PLUS
3167: ST_TO_ADDR
// RandPos ;
3168: CALL 3211 0 0
// wait ( 0 0$04 ) ;
3172: LD_INT 140
3174: PPUSH
3175: CALL_OW 67
// until x = [ 1 , 2 , 2 ] [ Difficulty ] ;
3179: LD_VAR 0 2
3183: PUSH
3184: LD_INT 1
3186: PUSH
3187: LD_INT 2
3189: PUSH
3190: LD_INT 2
3192: PUSH
3193: EMPTY
3194: LIST
3195: LIST
3196: LIST
3197: PUSH
3198: LD_OWVAR 67
3202: ARRAY
3203: EQUAL
3204: IFFALSE 3006
// end ;
3206: LD_VAR 0 1
3210: RET
// export spawnarea ; export function RandPos ; begin
3211: LD_INT 0
3213: PPUSH
// Randomize ;
3214: CALL_OW 10
// case Rand ( 1 , 8 ) of 1 :
3218: LD_INT 1
3220: PPUSH
3221: LD_INT 8
3223: PPUSH
3224: CALL_OW 12
3228: PUSH
3229: LD_INT 1
3231: DOUBLE
3232: EQUAL
3233: IFTRUE 3237
3235: GO 3248
3237: POP
// begin spawnarea = ARRightPos1 ;
3238: LD_ADDR_EXP 10
3242: PUSH
3243: LD_INT 7
3245: ST_TO_ADDR
// end ; 2 :
3246: GO 3382
3248: LD_INT 2
3250: DOUBLE
3251: EQUAL
3252: IFTRUE 3256
3254: GO 3267
3256: POP
// begin spawnarea = ARLeftPos1 ;
3257: LD_ADDR_EXP 10
3261: PUSH
3262: LD_INT 11
3264: ST_TO_ADDR
// end ; 3 :
3265: GO 3382
3267: LD_INT 3
3269: DOUBLE
3270: EQUAL
3271: IFTRUE 3275
3273: GO 3286
3275: POP
// begin spawnarea = ArUpPos1 ;
3276: LD_ADDR_EXP 10
3280: PUSH
3281: LD_INT 10
3283: ST_TO_ADDR
// end ; 4 :
3284: GO 3382
3286: LD_INT 4
3288: DOUBLE
3289: EQUAL
3290: IFTRUE 3294
3292: GO 3305
3294: POP
// begin spawnarea = ARRightPos3 ;
3295: LD_ADDR_EXP 10
3299: PUSH
3300: LD_INT 9
3302: ST_TO_ADDR
// end ; 5 :
3303: GO 3382
3305: LD_INT 5
3307: DOUBLE
3308: EQUAL
3309: IFTRUE 3313
3311: GO 3324
3313: POP
// begin spawnarea = ArLeftPos4 ;
3314: LD_ADDR_EXP 10
3318: PUSH
3319: LD_INT 14
3321: ST_TO_ADDR
// end ; 6 :
3322: GO 3382
3324: LD_INT 6
3326: DOUBLE
3327: EQUAL
3328: IFTRUE 3332
3330: GO 3343
3332: POP
// begin spawnarea = ArRightPos2 ;
3333: LD_ADDR_EXP 10
3337: PUSH
3338: LD_INT 8
3340: ST_TO_ADDR
// end ; 7 :
3341: GO 3382
3343: LD_INT 7
3345: DOUBLE
3346: EQUAL
3347: IFTRUE 3351
3349: GO 3362
3351: POP
// begin spawnarea = ArLeftPos2 ;
3352: LD_ADDR_EXP 10
3356: PUSH
3357: LD_INT 12
3359: ST_TO_ADDR
// end ; 8 :
3360: GO 3382
3362: LD_INT 8
3364: DOUBLE
3365: EQUAL
3366: IFTRUE 3370
3368: GO 3381
3370: POP
// begin spawnarea = ArLeftPos3 ;
3371: LD_ADDR_EXP 10
3375: PUSH
3376: LD_INT 13
3378: ST_TO_ADDR
// end ; end ;
3379: GO 3382
3381: POP
// end ; end_of_file
3382: LD_VAR 0 1
3386: RET
// export Center ; every 0 0$01 trigger Center = 1 do
3387: LD_EXP 11
3391: PUSH
3392: LD_INT 1
3394: EQUAL
3395: IFFALSE 3410
3397: GO 3399
3399: DISABLE
// begin enable ;
3400: ENABLE
// CenterOnUnits ( Nefarem ) ;
3401: LD_EXP 3
3405: PPUSH
3406: CALL_OW 85
// end ; end_of_file
3410: END
// export LostCheck ; every 0 0$02 trigger LostCheck = true do
3411: LD_EXP 12
3415: PUSH
3416: LD_INT 1
3418: EQUAL
3419: IFFALSE 3542
3421: GO 3423
3423: DISABLE
// begin enable ;
3424: ENABLE
// if IsDead ( Nefarem ) then
3425: LD_EXP 3
3429: PPUSH
3430: CALL_OW 301
3434: IFFALSE 3445
// begin YouLost ( Nef ) ;
3436: LD_STRING Nef
3438: PPUSH
3439: CALL_OW 104
// end else
3443: GO 3542
// if FilterAllUnits ( [ [ f_side , 1 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) < 2 and FilterAllUnits ( [ [ f_side , 4 ] , [ f_type , unit_vehicle ] , [ f_control , control_computer ] ] ) < 2 then
3445: LD_INT 22
3447: PUSH
3448: LD_INT 1
3450: PUSH
3451: EMPTY
3452: LIST
3453: LIST
3454: PUSH
3455: LD_INT 21
3457: PUSH
3458: LD_INT 2
3460: PUSH
3461: EMPTY
3462: LIST
3463: LIST
3464: PUSH
3465: LD_INT 33
3467: PUSH
3468: LD_INT 3
3470: PUSH
3471: EMPTY
3472: LIST
3473: LIST
3474: PUSH
3475: EMPTY
3476: LIST
3477: LIST
3478: LIST
3479: PPUSH
3480: CALL_OW 69
3484: PUSH
3485: LD_INT 2
3487: LESS
3488: PUSH
3489: LD_INT 22
3491: PUSH
3492: LD_INT 4
3494: PUSH
3495: EMPTY
3496: LIST
3497: LIST
3498: PUSH
3499: LD_INT 21
3501: PUSH
3502: LD_INT 2
3504: PUSH
3505: EMPTY
3506: LIST
3507: LIST
3508: PUSH
3509: LD_INT 33
3511: PUSH
3512: LD_INT 3
3514: PUSH
3515: EMPTY
3516: LIST
3517: LIST
3518: PUSH
3519: EMPTY
3520: LIST
3521: LIST
3522: LIST
3523: PPUSH
3524: CALL_OW 69
3528: PUSH
3529: LD_INT 2
3531: LESS
3532: AND
3533: IFFALSE 3542
// begin YouLost ( pojazdyded ) ;
3535: LD_STRING pojazdyded
3537: PPUSH
3538: CALL_OW 104
// end ; end ; end_of_file
3542: END
// every 0 0$01 do
3543: GO 3545
3545: DISABLE
// begin case Difficulty of 1 :
3546: LD_OWVAR 67
3550: PUSH
3551: LD_INT 1
3553: DOUBLE
3554: EQUAL
3555: IFTRUE 3559
3557: GO 3588
3559: POP
// begin SetTech ( 57 , 2 , state_Researched ) ;
3560: LD_INT 57
3562: PPUSH
3563: LD_INT 2
3565: PPUSH
3566: LD_INT 2
3568: PPUSH
3569: CALL_OW 322
// SetTech ( 51 , 2 , state_Researched ) ;
3573: LD_INT 51
3575: PPUSH
3576: LD_INT 2
3578: PPUSH
3579: LD_INT 2
3581: PPUSH
3582: CALL_OW 322
// end ; 2 :
3586: GO 3702
3588: LD_INT 2
3590: DOUBLE
3591: EQUAL
3592: IFTRUE 3596
3594: GO 3638
3596: POP
// begin SetTech ( 57 , 2 , state_Researched ) ;
3597: LD_INT 57
3599: PPUSH
3600: LD_INT 2
3602: PPUSH
3603: LD_INT 2
3605: PPUSH
3606: CALL_OW 322
// SetTech ( 51 , 2 , state_Researched ) ;
3610: LD_INT 51
3612: PPUSH
3613: LD_INT 2
3615: PPUSH
3616: LD_INT 2
3618: PPUSH
3619: CALL_OW 322
// SetTech ( 52 , 2 , state_Researched ) ;
3623: LD_INT 52
3625: PPUSH
3626: LD_INT 2
3628: PPUSH
3629: LD_INT 2
3631: PPUSH
3632: CALL_OW 322
// end ; 3 :
3636: GO 3702
3638: LD_INT 3
3640: DOUBLE
3641: EQUAL
3642: IFTRUE 3646
3644: GO 3701
3646: POP
// begin SetTech ( 57 , 2 , state_Researched ) ;
3647: LD_INT 57
3649: PPUSH
3650: LD_INT 2
3652: PPUSH
3653: LD_INT 2
3655: PPUSH
3656: CALL_OW 322
// SetTech ( 58 , 2 , state_Researched ) ;
3660: LD_INT 58
3662: PPUSH
3663: LD_INT 2
3665: PPUSH
3666: LD_INT 2
3668: PPUSH
3669: CALL_OW 322
// SetTech ( 51 , 2 , state_Researched ) ;
3673: LD_INT 51
3675: PPUSH
3676: LD_INT 2
3678: PPUSH
3679: LD_INT 2
3681: PPUSH
3682: CALL_OW 322
// SetTech ( 52 , 2 , state_Researched ) ;
3686: LD_INT 52
3688: PPUSH
3689: LD_INT 2
3691: PPUSH
3692: LD_INT 2
3694: PPUSH
3695: CALL_OW 322
// end ; end ;
3699: GO 3702
3701: POP
// end ;
3702: END
